// PR c++/82643
// { dg-do compile { target c++14 } }

int main()
{
  struct A {
    constexpr int operator()() const { return 42; }
  };

  auto f = A();
  constexpr auto x = f(); //ok, call constexpr const non-static method

  [](auto const &f) {
    constexpr auto x = f();	// { dg-error "" }
  }(f);

  [&]() {
    constexpr auto x = f(); //ko, __closure is not a constant expression
  };

  [=]() {
    constexpr auto x = f(); //same ko, __closure is not a constant expression
  };
}
